//对于短期成本，日期不可相互覆盖，相接的如果成本不同也可以；
//对于长期+短期成本，长期成本的生效日期不可落在短期成本中间；
//对于长期+长期成本，这种相对少见，而且业务逻辑不合理，也要报错，让采购改成短期+长期。

var result_cost7677 = JSON.parse('{"CODE":0, "ACTION":"","LEVEL":"", "MSG":"","DATA":""}');
var COST_EFF = new Date(NEW_COST_EFF_DATE);
var COST_EXP = new Date(NEW_COST_EXP_DATE);

function checkcostdateoverlap(LIST) {
  for (var i = 0; i < LIST.length; i++) {
    if (ITEM_NBR == LIST[i].ITEM_NBR && ID != LIST[i].ID && !isNull(LIST[i].NEW_COST_EXP_DATE)) {
      // 对于短期成本，日期不可相互覆盖
      if (NEW_COST_EXP_DATE != '2049-12-31' && LIST[i].NEW_COST_EXP_DATE != '2049-12-31'
       && isDateIntersection(COST_EFF, COST_EXP, new Date(LIST[i].NEW_COST_EFF_DATE), new Date(LIST[i].NEW_COST_EXP_DATE))) {
        return 1;
      }
      //相接的如果成本相同报错
       if (
       // NEW_COST_EXP_DATE != '2049-12-31' && LIST[i].NEW_COST_EXP_DATE != '2049-12-31' && 
       (NEW_COST_EXP_DATE == LIST[i].NEW_COST_EFF_DATE || LIST[i].NEW_COST_EXP_DATE == NEW_COST_EFF_DATE)
       && NEW_CASE_COST == LIST[i].NEW_CASE_COST) {
        return 2;
      }
      //对于长期+短期成本，长期成本的生效日期不可落在短期成本中间
      else if (NEW_COST_EXP_DATE == '2049-12-31' && LIST[i].NEW_COST_EXP_DATE != '2049-12-31'
        && betweenDay(new Date(LIST[i].NEW_COST_EFF_DATE),COST_EFF) > 0
        && betweenDay(COST_EFF,new Date(LIST[i].NEW_COST_EXP_DATE)) > 0) {
        return 3;
      }
      else if (NEW_COST_EXP_DATE != '2049-12-31' && LIST[i].NEW_COST_EXP_DATE == '2049-12-31'
        && betweenDay( COST_EFF,new Date(LIST[i].NEW_COST_EFF_DATE)) > 0
        && betweenDay( new Date(LIST[i].NEW_COST_EFF_DATE),COST_EXP) > 0) {
        return 4;
      }
      //对于长期+长期成本，这种相对少见，而且业务逻辑不合理，也要报错，让采购改成短期+长期。
      else if (NEW_COST_EXP_DATE == '2049-12-31' && LIST[i].NEW_COST_EXP_DATE =='2049-12-31' ) {
        return 5;
      }
    }
  }
  return 0;
};

if (!isNull(JSON_ITEM_LIST) && !isNull(NEW_COST_EXP_DATE)) {
  if (checkcostdateoverlap(JSON_ITEM_LIST) != 0) {
    result_cost7677.CODE = 2;
    result_cost7677.ACTION = "CHECKING_REPORT";
    result_cost7677.MSG = "文件中存在日期重复/重叠的成本";
  }
}
JSON.stringify(result_cost7677);


